// #include "MyFileSystem.h"
// #include "iostream"
// #include <dirent.h>//文件系统库
// #include <sys/stat.h>
// MyFileSystem::MyFileSystem(const std::string &path)
// {
//     FlieInfo *info = new FlieInfo(path);
//     TreeNode *rootpath = new TreeNode(info);
//     rootpath->Connect(tree.Getroot());
//     ExploreDir(*info,rootpath);

// }

// // void MyFileSystem::FindByFileName(const std::string &name)
// // {
// //     DoubleLinkList list = tree.FindByElement(name.substr(0,name.find(' ')));
// //     for(size_t i = 0;i < list.Size();i++)
// //     {
// //         std::string path;
// //         TreeNode* node = (TreeNode*)*list.FindByIndex(i);
// //         path = node->GetData();
// //         while(node->GetParent() != tree.Getroot() && node->GetParent() != nullptr)
// //         {
// //             path = node->GetParent()->GetData() + "/" + path;
// //             node = node->GetParent();
// //         }
// //         std::cout<<path<<std::endl;
// //     }
// //     // TreeNode* node = (TreeNode*)*list.FindByIndex(0);
// //     // while(node->GetParent() != nullptr)
// //     // {
// //     //     node = node->GetParent();
// //     // }

// // }

// std::string DoubleToStr(double n, int fixed = 3) //保留位数
// {
//     std::string s = std::to_string(n);
//     return s.substr(0,s.find('.') + fixed);
// }


// std::string Transform(long size)
// {
//     if(size < 1024)
//         return DoubleToStr(size) + "B";
//     else if(size < 1024 * 1024)
//         return DoubleToStr(1.0 * size / 1024) + "KB";
//     else if(size < 1024 * 1024 * 1024)
//         return DoubleToStr(1.0 * size / 1024 / 1024) + "MB";
//     else 
//         return DoubleToStr(1.0 * size / 1024 / 1024 /1024) + "GB";
    
   
// }

// void MyFileSystem::ExploreDir(const FlieInfo &path, TreeNode *parent)
// {
//     DIR* dir = opendir(path.name.c_str());//打开一个文件夹
//     if(dir == nullptr)
//     {
//         std::cout<<"文件夹路径有误！\n";
//         return;
//     }
//     dirent* d = nullptr;//读取文件下的文件
//     while((d = readdir(dir)) != nullptr)
//     {
//         FlieInfo dname(d->d_name);
//         if(dname != "." && dname != "..")
//         {
//             TreeNode* node =new TreeNode(&dname);
//             node->Connect(parent);

//             if(d->d_type == DT_DIR)
//             {
//                 ExploreDir(path.name + "/" + dname,node);
//             }
//             // else
//             // {
//             //     struct stat s;
//             //     stat((path + "/" + dname).c_str(),&s);//根据路径获取文件信息
//             //     char name[512] = {0};
//             //     sprintf(name,"%-30s  size:%s",dname.c_str(),Transform(s.st_size).c_str());
//             //     node->SetData(name);
//             // }
//         }


//     }

//     closedir(dir);
// }
